package it.tcm.TeacherClassMate.action;


import java.util.List;
import java.util.Set;

import it.tcm.TeacherClassMate.beans.EquationBean;
import it.tcm.TeacherClassMate.beans.OrderMainBean;
import it.tcm.TeacherClassMate.beans.OrderRowBean;
import it.tcm.TeacherClassMate.facade.EquationManageBase;
import it.tcm.TeacherClassMate.form.GeneralForm;
import it.tcm.TeacherClassMate.form.SortablesForm;
import it.tcm.TeacherClassMate.util.Util;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.log4j.Logger;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;



public class OrderFormulasAction extends Action {

	// --------------------------------------------------------- Instance Variables

	// --------------------------------------------------------- Methods


	private Logger logger = Logger.getLogger(this.getClass().getName());
	
	/** 
	 * Method execute
	 * @param mapping
	 * @param form
	 * @param request
	 * @param response
	 * @return ActionForward
	 * 
	 */

	public ActionForward execute(
		ActionMapping mapping,
		ActionForm form,
		HttpServletRequest request,
		HttpServletResponse response) 
	{		
		 logger.info("ORDER FORMULAS");
		 request.setAttribute(Util.SORT_TEMPLATE, new SortablesForm());
		 OrderMainBean omb = (OrderMainBean)request.getSession().getAttribute(Util.ORDER_MAIN_OBJECT);
		 Set<OrderRowBean> set = omb.getOrderRows();
		 if (set == null || set.size() == 0) {
			 request.setAttribute("warning_data", "NO_FORMULA");
			 request.setAttribute(Util.FORM_GENERAL, new GeneralForm());
			 EquationManageBase emb = new EquationManageBase();
			 List<EquationBean> equationBeanList = emb.getAll();
			 request.setAttribute("resultList", equationBeanList);					 
			 return mapping.findForward("mergedatatemplate"); 
		 } 
		 if (omb.getOrderRows() != null) logger.info("omb  size " + omb.getOrderRows().size());
		 return mapping.findForward("orderformulas"); 
		 
	}
	
	
}